package exam.exam03;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

public class TestDemo {
    //从控制台中读入一个文件名，判断该文件是否存在。如果该文件存在，则在原文件相同路径下创建一个文件名为
    // "copy_原文件名"的新文件，该文件内容为原文本的拷贝。
    // 例如：读入 /home/java/photo.jpg则创建一个文件 /home/java/copy_photo.jpg新文件内容和原文件内容相同。

    public static void main(String[] args) {
        System.out.println("请输入文件名：");
        //从控制台中读入一个文件名,使用Scanner
        String fileName = new Scanner(System.in).next();
        //创建File对象，保存文件名
        File file = new File(fileName);

        if (!file.exists()){//判断文件是否存在
            System.out.println("文件不存在");
        }else {
            //创建新文件,文件名为："copy_原文件名"的新文件
            File newFile = new File(file.getParent(), "copy_" + file.getName());
            //创建输入流对象
            FileReader fr = null;
            //创建输出流对象
            FileWriter fw = null;
            try {fr = new FileReader(file);//读入file
                fw = new FileWriter(newFile);//写入newFile
                char[] chars = new char[1024];//创建一个char数组
                int len;//读取的有效长度
                while ((len = fr.read(chars)) != -1){
                    fw.write(chars, 0, len);//写入
                }

            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try {
                    if (fr != null){
                        fr.close();
                    }
                    if (fw != null){
                        fw.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
